В Хаскеле есть операции && и || для логических значений. Их тип фиксирован, это (&&), (||) :: Bool -> Bool -> Bool.
В результате те, кому мало Prelude, делают свои классы для своих операций, где те же самые операции уже перегружены по носителю: (&&), (||) :: Constraint f => f Bool -> f Bool -> f BoolИ эти же операции перекрываются с операциями из
(
Read more... )